package com.gdhengdian.map._interface;

/**
 * @author HD-0078 杨炜耀
 * @date 2021-4-8 14:56
 */
public interface Map<K, V> {

    /**
     * 添加元素
     * @param key 键
     * @param value 值
     */
    void put(K key, V value);

    /**
     * 根据key删除元素
     * @param key 键
     * @return 删除的元素
     */
    V remove(K key);

    /**
     * 根据key查询元素是否存在
     * @param key 键
     * @return true表示存在，false表示不存在
     */
    boolean contains(K key);

    /**
     * 根据key获取value
     * @param key 键
     * @return 元素
     */
    V get(K key);

    /**
     * 改变key的值
     * @param key 键
     * @param value 值
     */
    void set(K key, V value);

    /**
     * 获取Map中的元素个数
     * @return 元素个数
     */
    int size();

    /**
     * 判断Map是否为空
     * @return true表示空，false表示不为空
     */
    boolean isEmpty();
}
